package tesis.ProyectoFianl.Vista;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import tesis.ProyectoFianl.Entidades.Hospital;
import tesis.ProyectoFianl.Logica.DAOHospital;
import tesis.ProyectoFianl.Logica.DAOUbicacion;
import tesis.ProyectoFianl.Overlay.MyItemizedOverlay;
import tesis.ProyectoFianl.Overlay.OverlayHospital;
import tesis.ProyectoFinal.BusWay.R;
import android.graphics.Color;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.Log;

import com.google.android.maps.GeoPoint;
import com.google.android.maps.Overlay;
import com.google.android.maps.OverlayItem;

public class ActivityMapHospital extends ActivityMap
{
	List<Overlay> mapOverlays;	
	Drawable drawable;
	MyItemizedOverlay itemizedOverlay;	
	int opcion;
	
	
	@Override
    public void onCreate(Bundle savedInstanceState) 
	{		
        super.onCreate(savedInstanceState);       
        
        Bundle b = getIntent().getExtras();
		opcion =  b.getInt("opcion");
		if(opcion==1)
		{
			Hospital hospital;
			hospital =  (Hospital) b.getSerializable("hospital");
			dibujarHospital(hospital);
		}
		else if(opcion==2)
		{			
			DAOHospital hospital123 = new DAOHospital(this);
			ArrayList<Hospital> hospitalList = hospital123.getHospital();
			
			dibujarHospital(hospitalList);
			
		}
		else if(opcion==3)
		{			
			int modo =  b.getInt("modo");
			Hospital hospital;
			hospital =  (Hospital) b.getSerializable("hospital");
			
			DAOUbicacion ubicacion = new DAOUbicacion(this);
			ubicacion.listarUbicacion(hospital);
			
//			Location location = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);
			
			GeoPoint origen = new GeoPoint(
										   (int)(-26.84444 * 1E6), 
										   (int)(-65.24444* 1E6));
			
			GeoPoint destino = new GeoPoint(
										   (int)(hospital.getUbicacion().getLatitud() *1E6), 
										   (int)(hospital.getUbicacion().getLongitud() * 1E6));
			Log.d("Coordenadas", ""+hospital.getUbicacion().getLongitud());
			
			dibujarHospital(hospital);
			DrawPath(origen, destino, modo, Color.RED, mapView);
			
		}
	}
	
    
	public void dibujarHospital(Hospital hospital)
	{
		this.mapView.getOverlays().add(new OverlayHospital(hospital));
		GeoPoint punto1 = new GeoPoint(
										(int) (hospital.getUbicacion().getLatitud() * 1E6), 
										(int) (hospital.getUbicacion().getLongitud()* 1E6));
		mapView.getController().animateTo(punto1);
		mapView.getController().setZoom(13);
	}
	
	public void dibujarHospital(ArrayList<Hospital> hospital)
	{
		mapOverlays = mapView.getOverlays();
		drawable = getResources().getDrawable(R.drawable.hospital);
//		itemizedOverlay = new MyItemizedOverlay(drawable, mapView, this);
		
		Iterator<Hospital> iterador = hospital.iterator();	
		while(iterador.hasNext())
		{
			Hospital hos = iterador.next();
			
			DAOUbicacion ubicacion = new DAOUbicacion(this);
			ubicacion.listarUbicacion(hos);
			if(hos.getUbicacion()!=null)
			{
			
				GeoPoint point = new GeoPoint(
											(int)(hos.getUbicacion().getLatitud()*1E6),
											(int)(hos.getUbicacion().getLongitud()*1E6));
				
				OverlayItem overlayItem = new OverlayItem(point, "Hospital "+hos.getNombre(), 
																 "Direccion: "+hos.getDireccion()+"\nTelefono: "+hos.getTelefono());
				
				itemizedOverlay.addOverlay(overlayItem);
				Log.d("Ubicacion"+hos.getNombre(),""+hos.getUbicacion().getLatitud());
			}
		}		
		mapOverlays.add(itemizedOverlay);
		
		GeoPoint punto1 = new GeoPoint((int) (-26.822232* 1E6), (int) (-65.217075 * 1E6));
		mapView.getController().animateTo(punto1);
		mapView.getController().setZoom(13);	
//		Iterator<Hospital> iterador = hospital.iterator();
//		
//		while(iterador.hasNext())
//		{
//			Hospital hos = (Hospital) iterador.next();
//			
//			DAOUbicacion ubicacion = new DAOUbicacion(this);
//			ubicacion.listarUbicacion(hos);
//			
////				hospitalList = hospital123.getHospital();
//			if(hos.getUbicacion()!=null)
//			{
//				Log.d("Hospital"+hos.getNombre(),
//					  "Lat: "+hos.getUbicacion().getLatitud()+"  Long: "+hos.getUbicacion().getLongitud());
//				this.mapView.getOverlays().add(new OverlayHospital(hos));
//			}
//		}
	}	
	@Override
	protected boolean isRouteDisplayed() {
		return false;
	}

}
